package com.feige.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.feige.pojo.AskForLeave;
import com.feige.pojo.vo.AskForLeaveDetailVo;
import com.feige.pojo.vo.AskForLeaveVo;
import com.feige.pojo.vo.UserVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 请假表 Mapper 接口
 * </p>
 *
 * @author feige
 * @since 2020-11-20
 */

@Repository
public interface AskForLeaveMapper extends BaseMapper<AskForLeave> {
    /**
     * 通过用户ID分页查询请假信息
     * @param map
     * @return
     */
    List<AskForLeaveVo> getAskForLeaveById(Map<String, Object> map);

    /**
     * 通过用户ID查询请假信息总数
     * @param userId
     * @return
     */
    int getAskForLeaveCountById(String userId);

    /**
     * 通过请假信息ID查询详细请假信息
     * @param id
     * @param audit
     * @return
     */
    AskForLeaveDetailVo getAskForLeaveDetailById(String id,String audit);


    /**
     * 查询该班级下的请假信息
     * @param map
     * @return
     */
    List<AskForLeaveVo> getAskForLeaveByClazzId(Map<String, Object> map);

    /**
     * 查询该班级下的请假信息条数
     * @param clazzId
     * @return
     */
    long getAskForLeaveCountByClazzId(String clazzId);

    /**
     * 通过课程ID查询请假已审核并且未销假的人
     * @param id 课程ID
     * @return
     */
    List<UserVo> getAuditNameByCourseId(@Param("id") String id);

    /**
     * 通过班级ID查询请假已审核并且未销假的人
     * @param id 班级ID
     * @return
     */
    List<UserVo> getAuditNameByClazzId(@Param("id") String id);

}
